Multiple active network wireless device

ABSTRACT

A wireless device capable of using multiple SIM cards to simultaneously communicate with multiple cellular networks is presented. The wireless device is a dual-SIM dual-data active device that is capable of receiving and transmitting data packets over multiple cellular networks simultaneously or at substantially the same time. The wireless device may include a second set of antennas and internal hardware, including a second model and processor enabling the wireless device to communicate with at least two cellular networks. The wireless device may select a cellular network to perform a task, such as complete a call or download a video based on a difference in signal strength between the two or more cellular networks supported by the wireless device.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/399,796, which was filed on Apr. 30, 2019 and is titled “MULTIPLEACTIVE NETWORK WIRELESS DEVICE,” the disclosure of which is expresslyincorporated by reference herein in its entirety for all purposes, andwhich claims priority to U.S. Provisional Application No. 62/665,103,which was filed on May 1, 2018 and is titled “SYSTEM AND METHOD FORMULTI-NETWORK DYNAMIC ROUTING,” the disclosure of which is expresslyincorporated by reference herein in its entirety for all purposes.Further, U.S. application Ser. No. 16/399,796 also claims priority toU.S. Provisional Application No. 62/836,571, which was filed on Apr. 19,2019 and is titled “MULTIPLE ACTIVE NETWORK WIRELESS DEVICE,” thedisclosure of which is expressly incorporated by reference herein in itsentirety for all purposes. Any and all applications, if any, for which aforeign or domestic priority claim is identified in the Application DataSheet of the present application are hereby incorporated by reference intheir entireties under 37 CFR 1.57. Further, this applicationincorporates by reference in its entirety for all purposes U.S.application Ser. No. 13/367,133 (now U.S. Pat. No. 9,124,957), which wasfiled on Feb. 6, 2012 and is titled “SYSTEM AND METHOD FOR DYNAMICMULTIFACTOR ROUTING.”

BACKGROUND

Network protocols can be used to connect devices for mobilecommunications. One way of connecting devices is using the Global Systemfor Mobile Communications (GSM) architecture and/or standard, which mayemploy time-division multiple-access (TDMA) protocols. Voice from onedevice can be transformed into digital data, and given a channel and atime slot. The receiving device can listen to the voice during theassigned time slot. Some network protocols that compete with GSMimplement Code-Division Multiple Access (CDMA), which can connect callsusing a code division system. Call data may be encoded with a unique keyand multiple call data may be transmitted at once. The receiving devicemay use the unique key to identify the data associated with the specificcall to which the receiving device is connected.

SUMMARY

The systems, methods and devices of this disclosure each have severalinnovative aspects, no single one of which is solely responsible for allof the desirable attributes disclosed herein. Details of one or moreimplementations of the subject matter described in this specificationare set forth in the accompanying drawings and the description below.

Certain aspects of the present disclosure relate to a wireless deviceconfigured to maintain communication channels over multiple datanetworks with each data network configured using a differentcommunication technology or set of frequency bands. The wireless devicemay include: a first primary antenna configured to transmit signals of afirst transmit band and receive signals of a first receive band, and totransmit signals of a second transmit band and received signals of asecond transmit band; a first diversity antenna configured to receivethe signals of the first receive band, and receive the signals of thesecond receive band; a first radio frequency subsystem in electricalcommunication with the first primary antenna and the first diversityantenna, the first radio frequency subsystem configured to decode thesignals of the first receive band and to decode the signals of thesecond receive band; a second radio frequency subsystem in electricalcommunication with the first diversity antenna, the second radiofrequency subsystem configured to decode the signals of the firstreceive band and to decode the signals of the second receive band; and ahardware processor in electrical communication with a first subscriberidentity module, a second subscriber identity module, the first radiofrequency subsystem, and the second radio frequency subsystem, whereinthe first subscriber identity module is associated with a first wirelessnetwork that supports the first transmit band and the first receiveband, and the second subscriber identity module is associated with asecond wireless network that supports the second transmit band and thesecond receive band, and wherein the hardware processor is configured tocontrol whether the first subscriber identity module or the secondsubscriber module uses the first radio frequency subsystem tocommunicate at a particular time period.

The wireless device of the preceding paragraph can include anycombination or sub-combination of the following features: where thewireless device further includes a first modem connected between thefirst radio frequency subsystem and the hardware processor, the firstmodem configured to transmit a packet using the first primary antenna tothe first wireless network or the second wireless network; where thefirst modem is configured to determine whether the packet is a voicepacket or a data packet; where the wireless device further includes: afirst modem connected between the first radio subsystem and the hardwareprocessor, the first modem configured to transmit a packet using thefirst primary antenna to one of the first wireless network or the secondwireless network; and a second modem connected to the hardwareprocessor, the second modem configured to transmit the packet using asecond primary antenna; where the second modem is integrated with asecond hardware processor configured to manage communication with athird wireless network; where the hardware processor serves as a primarydevice and the second hardware processor serves as a secondary device ina primary/secondary communication model; where the second modem isconnected to the hardware processor via an auxiliary port of thehardware processor; where the wireless device further includes acommunication hub configured to connect the second modem to the hardwareprocessor; where the communication hub connects between an external datatransfer or charging port of the wireless device and a data transfer orcharging port of the hardware processor; where the second radiofrequency subsystem is configured to receive the signals of the firstreceive band or the signals of the second receive band, and wherein thesecond radio frequency subsystem does not transmit signals; where thewireless device further includes a tuner in electrical communicationwith the first radio frequency subsystem, the first tuner configured todetermine whether a received signal is a signal of a first channelaccess method or a signal of a second channel access method; where thefirst channel access method comprises one of code-division multipleaccess, wideband code-division multiple access, or time-divisionmultiple access, and the second channel access method comprises one ofcode-division multiple access, wideband code-division multiple access,or time-division multiple access; where the hardware processor isfurther configured to determine a first signal strength of a connectionwith the first wireless network and a second signal strength of aconnection with the second wireless network based at least in part onthe received signals of the first receive band, and the received signalsof the second receive band; where the hardware processor is furtherconfigured to determine whether to communicate with the first wirelessnetwork or the second wireless network based at least in part on thefirst signal strength or the second signal strength; and where the firstwireless network is implemented using a first communication technologyand is associated with a first service provider, and the second wirelessnetwork is implemented using a second communication technology and isassociated with a second service provider.

BRIEF DESCRIPTION OF THE DRAWINGS

Throughout the drawings, reference numbers are re-used to indicatecorrespondence between referenced elements. The drawings are provided toillustrate embodiments of the inventions described herein and not tolimit the scope thereof.

FIG. 1 illustrates an embodiment of a communications environment inaccordance with the teachings of the present disclosure.

FIG. 2 illustrates a flow diagram for one embodiment of a dynamic callrouting process in accordance with the teachings of the presentdisclosure.

FIG. 3 illustrates a diagram illustrating various networkcharacteristics that can be used to determine which communicationsnetwork provider and/or network protocol to use to connect the call inaccordance with the teachings of the present disclosure.

FIG. 4 illustrates a flow diagram for one embodiment of a process fordetermining a call pattern and creating a caller profile in accordancewith the teachings of the present disclosure.

FIG. 5 illustrates a diagram for one embodiment of geolocation profilingfor determining a network protocol for a call in accordance with theteachings of the present disclosure.

FIG. 6 illustrates a flow diagram for one embodiment of a dynamic callrouting process for routing based on source and destination networkcharacteristics in accordance with the teachings of the presentdisclosure.

FIG. 7 illustrates a flow diagram for one embodiment of a dynamic callrouting process for rerouting during a call in accordance with theteachings of the present disclosure.

FIG. 8 illustrates a comparative example of a dual-SIM wireless device.

FIG. 9 illustrates an example of cellular coverage across differentcommunication technologies.

FIG. 10 illustrates an example of a dual-SIM dual-data active wirelessdevice in accordance with certain embodiments.

FIG. 11 illustrates a second example of a dual-SIM dual-data activewireless device in accordance with certain embodiments.

FIG. 12 illustrates a third example of a dual-SIM dual-data activewireless device in accordance with certain embodiments.

FIG. 13 illustrates a fourth example of a dual-SIM dual-data activewireless device in accordance with certain embodiments.

FIG. 14 illustrates an example communication environment forcommunicating using a dual-SIM dual-data active wireless device.

DETAILED DESCRIPTION Introduction

A number of routing systems decide how to route calls based on a singletype of network protocol. In many cases, the communications devices areable to support a single type of network protocol, such as CDMA or GSM,which may implement a TDMA protocol or a CDMA protocol, or a subset offrequency bands used in cellular communication. In some embodiments,network protocols can include other network protocols that can be usedto provide communication services to multiple users in a wired orwireless medium, such as frequency division multiple access (FDMA),orthogonal frequency division multiple access (OFDMA), spatial divisionmultiple access (SDMA), WiFi technology, Bluetooth, Digital EnhancedCordless Telecommunications (DECT), Near Field Communications (NFC),ZigBee, WiGig, Long-Term Evolution (LTE), and/or the like. In some suchcases, the routing systems can route calls from one communicationsnetwork provider to another communications network provider within thesame network that implements the same type of network protocol. Limitingthe routing of calls to communications network providers associated withnetworks using the same type of network protocol limits the availabilityof networks available for the call. Some networks that implementparticular network protocols may provide better network connectivity atparticular geographic or network locations than other networks thatimplement other network protocols. For example, a GSM network mayprovide better service than a CDMA network at a particular location.Furthermore, if many calls are made using the same network in aparticular area, the network may suffer decreased performance.

This disclosure describes a number of systems and associated processesthat can dynamically route calls over one or more communicationnetworks, which may be provided by one or more communication networkproviders. The communication networks may implement different networkprotocols, such as CDMA or GSM. Further, some communication networks mayutilize the same network protocol, but using different frequency bands.Moreover, this disclosure describes certain criteria that can be used toautomatically identify the appropriate network for a call based on thecriteria. In some cases, the criteria may include a geographicallocation, which may be associated with a particular network. In somesuch cases, a mobile device that can support multiple protocols may haveincreased options for networks that can process a call compared totraditional communication systems.

Further, this disclosure describes a number of systems and associatedprocesses that enable pattern recognition and profiling of certain callpatterns that can be used to determine an optimal network for a call. Incertain embodiments, determining a network over which to route a callcan be based at least in part on network characteristics of both thesource and destination devices of the call. Advantageously, in someembodiments, a dynamic routing system can route calls that wereinitially established with a first communications network implementing afirst network protocol, which may implement GSM, to a secondcommunications network implementing a second network protocol, which mayimplement CDMA. As such, if one network using one network protocol hasreduced network performance, the call can be rerouted over a differentnetwork using another network protocol, which may be owned or maintainedby a different communications network provider. These and other featuresare described in greater detail below with respect to the figures.

Example Communications Environment

FIG. 1 illustrates an embodiment of a communications environment 100 inaccordance with the teachings of the present disclosure. In thecommunications environment 100, a mobile device 102 can make a call to amobile device 104. In the illustrated example, the mobile device 102 maybe associated with a user who is initiating a call and may be referredto as the origin of the call, and the mobile device 104 may associatedwith a user who the caller desires to call and may be referred to as thetarget or destination for the call. However, it should be understoodthat the roles of the users, and consequently the roles of the mobiledevices 102 and 104 may be reversed. The call is not limited in type andcan include any type of call that may be performed over one or morecommunication networks that may implement one or more differentcommunication protocols. For example, the call can be: a telephone callplaced via mobile phone, a Voice over Internet Protocol (VoIP) call, ora modem call, to name a few. Further, the mobile device 102 and themobile device 104 can include any user or organization capable ofplacing the call.

To establish the call connection between the mobile device 102 and themobile device 104, the call may be routed over one or more differentcommunication networks provided or maintained by one or morecommunication network providers. In some cases, each communicationnetwork may be owned or maintained by a different communication networkprovider. However, in some embodiments, multiple communication networksmay be maintained by a single communication network provider. Forexample, a provider may maintain a 3G and 4G network. Further, theprovider may be implementing a 5G network. Each of the 3G, 4G, or 5Gnetworks may implement versions of the same communication profile or mayimplement different communication profiles.

In one embodiment, the call is routed to a dynamic routing system 108.The dynamic routing system 108 can determine one or more networkprotocols that are supported by a network 106 of a communicationsnetwork provider. The communications environment illustrated threecommunication networks 106A, 106B, 106C, which may individually bereferred to as a communication network 106 or collectively referred toas communication networks 106. For example, the dynamic routing system108 may determine that a communication network 106A can implement anetwork protocol 1, a communications network 106B can implement anetwork protocol 2, and a communication network 106C can implement anetwork protocol 3. In some embodiments, the communication network 106Aand 106C may both implement the network protocol 1, but using differentfrequency spectrums or bands. The dynamic routing system 108 can beassociated with one or more of the communication network providers orwith any entity that can offer systems or services for facilitatingoptimal or improved routing over one or more of the communicationnetworks based on one or more routing criteria. For example, the dynamicrouting system 108 may be configured to provide optimal or improvedrouting based on a criteria of improving call signal strength for callsor reducing dropped call rates for calls. Further, each communicationnetwork 106 can include a number of computing devices and/or telephonydevices, such as session border controls and gateways, to facilitatecommunications within the communication network 106, between a pluralityof communication networks 106, and/or with the dynamic routing system108. Some non-limiting examples of these computing devices areillustrated in FIG. 1 with respect to the dynamic routing system 108 andare described further below. Although FIG. 1 illustrates a particularembodiment of a configuration of the communications environment 100,other configurations are possible. For example, other embodiments of thecommunications environment 100 may enable routing of calls directly tothe dynamic routing system 108 prior to the calls being routed to acommunication network 106. In some embodiments, the communicationsnetworks 106 can communicate directly with other communication networks.

In certain embodiments, when routing a call, the dynamic routing system108 can determine a network 106 to route the call based on a number offactors. These factors can include, for example: the origin of the call;the destination of the call; the price charged to the dynamic routingsystem 108 to route a call over a communication network 106 and/or theprice charged by the dynamic routing system 108 to receive a call from acommunication network 106; network characteristics; geolocation of acaller; a pattern in historical call data; and/or the like. Some ofthese factors are discussed in more detail below.

In FIG. 1, several potential communication paths exist to connect themobile device 102 to the mobile device 104 via the communicationsnetwork providers 106 and the dynamic routing system 108. For example acall from the mobile device 102 may be routed from the communicationsnetwork 106A to the dynamic routing system 108, from the dynamic routingsystem 108 to the communications network 106C, and then from thecommunications network 106C to the mobile device 104. In someembodiments, the call from the mobile device 102 may be initially routedfrom the communications network 106A to the dynamic routing system 108.The dynamic routing system 108, based on one or more routing criteria,may subsequently instruct the mobile device 102 to use the communicationnetwork 106B to complete the call. Completing the call with thecommunications network 106B may include initiating a new call to themobile device 104 using the communication network 106B. In certainembodiments, the initial call to the dynamic routing system 108 and thesubsequent call to the mobile device 104 may occur with or withoutknowledge of the user initiating the call on the mobile device 102.Although a limited number of communication networks and call paths areillustrated in FIG. 1, it is possible for additional paths viaadditional communication networks to exist to connect the mobile device102 with the mobile device 104. Further, note that although only onedynamic routing system 108 is illustrated, it is possible for multipledynamic routing systems 108 to exist and for each dynamic routing system108 to communicate with a number of communication networks, such as thecommunications network providers 106 in FIG. 1 and other dynamic routingsystems 108.

In some embodiments, the dynamic routing system 108 includes a callrouting module 114, a call criteria database 112, and a caller profiledatabase 110. In some implementations, the dynamic routing system 108may include multiple call routing modules 114, call criteria databases112, and/or caller profile databases 110. Although illustrated assubsystems, it is possible in some embodiments for the call routingmodule 114, call criteria database 112, and/or caller profile database110 to be separate systems that are external to the dynamic routingsystem 108 and with which the dynamic routing system 108 maycommunicate. The call criteria database 112 can include or storecriteria for selecting a network using a particular network protocol bythe call routing module 114, as described further herein. The callerprofile database 110 can store profile information of a caller, such ashistorical call data, a pattern identified for callers, geolocation ofthe caller, and/or the like.

The call routing module 114 can route a call initiated by the mobiledevice 102 across one or more communication networks 106. To determinethe one or more communication networks 106 upon which to route the call,the call routing module 114 can identify or determine call informationassociated with the call and use the identified information tofacilitate selection of communication network 106. The call informationmay include network characteristics such as throughput and latency,supported network protocols of the mobile devices and/or availablecommunication networks for the call, supported communicationfrequencies, and/or the like. Further, in some embodiments, the callinformation may include price or rate information for a cell phone planof the caller user and/or the recipient user, and/or price or rateinformation for one or more of the communication networks to route thecall on behalf of the dynamic routing system 108 or the one or moreother communication networks.

The call routing module 114 can include any system that can receive acall and determine where to route the call. The call may be receivedfrom a communications network 106, an entity and/or processor associatedwith the communications network 106, the mobile device 102, the mobiledevice 104, the dynamic routing system 108, or any other system capableof providing the call to the call routing module 114. Further, the callrouting module 114 can include any system that can provide and/or routea call to another system. This call can be provided to a communicationsnetwork 106, an entity and/or processor associated with thecommunications network provider 106, the mobile device 102, the mobiledevice 104, and/or any other system capable of receiving the call fromthe call routing module 114. In addition, the call routing module 114can include any system capable of providing and/or receiving callinformation associated with a call.

The call routing module 114 can prioritize and/or rank certaincommunications networks 106 or provider of communication networks. Thecall routing module 114 can include any system capable of receiving callinformation associated with a call and/or determining a ranked orderrouting list of networks 106 and/or communications network providers towhich to route the call. For example, the call routing module 114 can beimplemented by one or more computing systems and each computing systemcan include one or more processors. In certain embodiments, the callrouting module 114 can implement one or more of the systems and/orperform one or more of the processes for routing a call that isdisclosed in U.S. Pat. No. 9,124,957, issued on Sep. 1, 2015 and titled“SYSTEM AND METHOD FOR DYNAMIC MULTIFACTOR ROUTING,” the entiredisclosure of which is hereby incorporated by reference herein for allpurposes.

In some embodiments, the call routing module 114 can rank a number ofcommunications networks 106 to process a call. The call routing module114 can receive call information associated with the call. Using thecall information, the call routing module 114 can perform one or moreranking processes to determine a ranked routing list of communicationnetworks. The ranked routing list can indicate a ranked order forcommunication networks and/or communication network providers that arecapable of routing the call and that satisfy a set of network selectioncriteria. The call routing module 114 can include any system capable ofdetermining the ranked order routing list for a call based on a numberof criteria or factors. The call routing module 114 can rank theavailable networks 106 and/or communications network providers based oncertain weighted values for the networks and/or communications networkproviders. For example, the weightings can be determined based on anetwork throughput capability, a price or profit margin when using anetwork and/or the communication network provider, a caller profileretrieved from the caller profile database 110, a certain criteria of acall retrieved from the call criteria database 112, such as ageographical location, a current number of calls routed to the network106, a network and/or associated communication network provider rating,and/or the like.

Call Routing

FIG. 2 illustrates a flow diagram for one embodiment of a dynamic callrouting process 200 in accordance with the teachings of the presentdisclosure. The process 200 can be performed by any system capable ofrouting a call including a communications network 106 that initiallyreceived a call from the mobile device 102, a communications networkprovider 106 that completed the final call connection to the mobiledevice 104, a communications network between an initial network thatreceived that call and a destination network that provided the call tothe mobile device 104, a dynamic routing system 108, and/or the like.Although a number of different systems may perform some or all of theprocess 200, to simplify discussion, the process 200 will be describedwith respect to particular systems.

The process begins at block 202 when, for example, the dynamic routingsystem 108 receives a call initiated by a mobile device 102. In someembodiments, receiving a call may include receiving an indication that auser is attempting or likely to attempt to initiate a call. For example,when a user opens a dialer or other application on a phone or when auser enters or begins to enter a phone number to initiate a call, theprocess 200 may be initiated enabling the selection of a preferrednetwork for completing the call prior to the call being initiated.

At block 204, the dynamic routing system 108 determines the one or morenetwork protocols supported by the mobile device 102. The networkprotocols can include, for example, CDMA, GSM, or other supportedcellular network protocols. Further, in some embodiments, the block 204may include identifying one or more frequency bands and/or networkproviders supported by the mobile device 102. In some embodiments, thedynamic routing system 108 can route among a variety of communicationnetworks that may vary based on the protocol implemented, the frequencybands supported, the communications standards supported (for example 3G,4G, or 4G LTE) or other characteristics of the communication networkthat may, in some cases, impact which wireless devices can communicatewith the communication network. For example, the dynamic routing system108 may route a call between different GSM carriers, between differentCDMA carriers, between a carrier implementing a 4G communicationstandard and a carrier implementing a 3G communications standard, and/orthe like. To simplify discussion, and not to limit the presentdisclosure, a number of embodiments disclosed herein are described withrespect to routing a call between a GSM and a CDMA network.

At decision block 206, the dynamic routing system 108 determines whetherthe user device supports a plurality of network protocols, such as adual network protocol capability. This determination can be based, atleast in part, on the determination that the user device supports bothGSM and CDMA protocols, or other network protocols. In some embodiments,a network that supports a particular network protocol can be associatedwith one SIM card of a mobile device, and another network that supportsa different network protocol can be associated with another SIM card ofthe mobile device.

If it is determined at the decision block 206 that the user devicesupports multiple network protocols, at block 210, the dynamic routingsystem 108 identifies a first network 106A that implements a firstnetwork protocol supported by the mobile device 102. For example, thefirst communications network 106A may implement a GSM protocol.

At block 212, the dynamic routing system 108 identifies a first signalstrength for a communication channel using the first communicationnetwork 106A. Determining the signal strength may include sending arequest to the mobile device 102 for a measurement of the first signalstrength and/or may include receiving the measured first signal strengthfrom the mobile device 102. The communication channel may be between themobile device 102 and an initial base station or cell tower of thecommunication network 106A, which may be referred to as a first hop orfirst mile. Alternatively, or in addition, the first communicationchannel may include a greater portion of the communication channelbetween the mobile device 102 and the communication network 106A and/orthe mobile device 104. In some cases, the signal strength is the signalstrength between the mobile device 102 and the initial base station orcell tower.

At block 214, the dynamic routing system 108 identifies a second network106B that implements a second network protocol supported by the mobiledevice 102. For example, the second communications network 106C mayimplement a CDMA protocol.

At block 216, the dynamic routing system 108 identifies a second signalstrength for a communication channel using the second communicationnetwork 106B. In certain embodiments, the block 216 can include one ormore of the embodiments described with respect to the block 212.

At block 218, based at least in part on the first and second signalstrengths, the dynamic routing system 108 can select a communicationnetwork associated with the higher signal strength for the mobile device102 to route the call. Routing the call via the network for which themobile device 102 has the highest signal strength may include providingthe mobile device 102 with the identity of the network associated withthe highest signal strength enabling the mobile device 102 to initiatethe call with the communications network that offers the best signalstrength for the mobile device 102 at the particular location and timewhen the process 200 was initiated. Alternatively, or in addition, thedynamic routing system 108 can cause the call to be routed to thecommunication network with the highest signal strength on behalf of themobile device 102. In certain embodiments, the process 200 may be usedto identify a network to route a call based on alternative or additionalcriteria to signal strength. For example, drop call rate, time-of-daypricing, available network bandwidth, or other information may be usedto identify a network to route the call. In certain embodiments, theoperations associated with the blocks 214 and 216 may be repeated foreach communication network or communication network protocol supportedby the mobile device 102 or with which the mobile device 102 is capableof communicating. For example, the operations may be repeated for thecommunication network 106C.

If it is determined at decision block 206 that the mobile device 102does not support multiple network protocols, at the block 208, the callis routed to the network supported by the mobile device 102.

FIG. 3 illustrates a diagram identifying various network characteristics300 that can be used to determine which network associated with acommunications network provider and/or network protocol to use toconnect the call in accordance with the teachings of the presentdisclosure. A non-limiting list of network characteristics 300 caninclude network latency 302, packet loss 304, an answer/seizure ratio306, a call clarity rating 308, a dropped call rate 310, a networkeffectiveness ratio 312, a post dial delay 314, and/or the like. Forexample, the network latency 302 for a first network using the GSMprotocol with a first communications network provider that supports theGSM protocol may be lower than that of a second network using the CDMAprotocol with a second communications network provider that supports theCDMA protocol. In the example of block 216 of FIG. 2, the dynamicrouting system 108 can route the call to a network using the GSMprotocol because of the improved network latency 302 performance.

Call Pattern Identification and Profiling

FIG. 4 illustrates a flow diagram for one embodiment of a process 400for determining a call pattern and creating a caller profile inaccordance with the teachings of the present disclosure. The process 400can be performed by any system capable of determining a call patternand/or creating and/or applying a caller profile. Although a number ofdifferent systems may perform some or all of the process 400, tosimplify discussion, the process 400 will be described with respect toparticular systems.

The process begins at block 402 when, for example, the dynamic routingsystem 108 identifies historical call data for a mobile device 102. Insome embodiments, the historical call data is associated with a user orphone number associated with the mobile device 102. Thus, the historicalcall data may include historical data for multiple devices that are orhave been associated with a user or phone number. The historical calldata can include information relating to when calls are made, where thecalls are made from (e.g., a home or business address, an urban or ruralarea, and the like), who is being called, and/or the like. For example,the historical call data may indicate that a particular user or mobiledevice 102 typically makes a call around 2:00 PM to a particular numbereach day, or on weekends.

At block 406, the dynamic routing system 108 identifies a patternbetween the network and/or network protocol used, and a characteristicof the historical data for the user device 406. Using the identifiedpatterns, a call profile can be established for the user or mobiledevice 102. For example, the dynamic routing system 108 can determinethat a user initiates a call every evening from the user's home to aparticular number (e.g., a number associated with the user's uncle). Thedynamic routing system 108 can determine that the call occurs between acertain time period, such as between 8 PM to 10 PM. The dynamic routingsystem 108 can determine that the network that is frequently selectedfor this call or that provides the best signal strength is a particularnetwork. The dynamic routing system 108 can establish criteria toautomatically route the call to the particular network when a call ismade that matches the profile created based on the historical data. Insome embodiments, a machine learning process can be used to identifycall profiles for a user or mobile device 102.

At block 408, the dynamic routing system 108 receives a call initiatedby the mobile device 102, from a communications network. Receiving thecall may include determining characteristics associated with the call,such as time of day, identity of the caller, location of the caller, andthe like. For example, the dynamic routing system 108 can determinewhether the request is to and/or from a certain caller, is being made ina certain time frame and/or geolocation, a call type and/or the like. Inone embodiment, identifying the call type can include, for example:identifying if the call origin and/or the call destination isinternational; identifying if the call is interstate; identifying if thecall is intrastate; identifying if the call is a fax call; identifyingif the call is a modem call; identifying if the call is a toll-freecall; and identifying if the call is a premium-rate call, to name a few.

At decision block 410, the dynamic routing system 108 determines whetherthe characteristics of the call matches characteristics of a callprofile associated with the user or mobile device 102.

If the characteristics of the call satisfy a particular call profile,the dynamic routing system 108 routes the call using communication anetwork identified in the call profile at block 412. If thecharacteristics of the call do not satisfy a call profile, the dynamicrouting system 108, at block 414, routes the call using a dynamicrouting process, such as the process 200. In some embodiments, the callmay be routed using a traditional routing process at block 414.

Geolocation Profiling

FIG. 5 illustrates a diagram for one embodiment of geolocation profilingfor determining a network for a call in accordance with the teachings ofthe present disclosure. In some embodiments, it may be determined thatfor a particular mobile device 102 or user that a particular network ispreferred in a particular geographic location. For example, asillustrated in FIG. 5, it may be determined that when a user is withinLos Angeles, it is preferable to use a CDMA protocol for making callsbecause, for example, the CDMA protocol may provide increased signalstrength or a lower dropped call rate. However, when a user or mobiledevice is in Orange County, it may be determined that it is preferableto make calls using a GSM protocol (e.g., over a GSM network) because,for example, the GSM protocol may provide increased signal strength oran improved call clarity compared to the CDMA network in the identifiedlocations.

In some embodiments, the mobile device 102 and/or the dynamic routingsystem 108 can override the network selection indicated by thegeolocation profile. For example, although it may generally be preferredto use a CDMA protocol in Los Angeles, the dynamic routing system 108may determine based at least in part on network characteristics at aparticular time that the GSM protocol is preferred. In some such cases,the default selection of a CDMA protocol may be overridden based on thedetermined or measured network characteristics at the particular time.

Routing Based on Source and Destination Network Characteristics

FIG. 6 illustrates a flow diagram for one embodiment of a dynamic callrouting process 600 for routing a call based on both source anddestination network characteristics in accordance with the teachings ofthe present disclosure. The process 600 can be performed by any systemcapable of routing a call including a communications network 106 thatinitially received a call from the mobile device 102, a communicationsnetwork 106 that completed the final call connection to the mobiledevice 104, a communications network somewhere in between, a dynamicrouting system 108, and/or the like. Although a number of differentsystems may perform some or all of the process 600, to simplifydiscussion, the process 600 will be described with respect to particularsystems.

The process begins at block 602 when, for example, the dynamic routingsystem 108 receives a call initiated by a mobile device 102, which maybe referred to a source or origin device. In certain embodiments, theblock 602 may include one or more of the embodiments described withrespect to the block 202.

At block 604, the dynamic routing system 108 identifies or measures anetwork characteristic for the source device for each of a set of two ormore supported communication networks. As previously described thesupported communication networks may include networks of differentvendors and/or networks that implement or support different networkprotocols. For example, if the source device can interact or communicatewith both a GSM network and a CDMA network, the dynamic routing system108 can determine a first signal strength associated with the sourcedevice communicating with the GSM network and a second signal strengthassociated with the source device communicating with the CDMA network.

At decision block 606, the dynamic routing system 108 determines whetherthe difference between network characteristics of the two or moresupported communications networks satisfies a threshold. For example,the dynamic routing system 108 can determine whether a differencebetween the first signal strength and the second signal strength in theprevious example satisfies a threshold signal strength difference.

If it is determined that the difference between the networkcharacteristics do not satisfy the threshold, then at block 612 thedynamic routing system 108 determines whether the mobile device 104,which may be referred to as the target or destination device, supportsmultiple communication networks. If the destination device supportsmultiple communication networks, at block 614, the dynamic routingsystem 108 identifies or measures a network characteristic for thedestination device for each of a set of two or more supportedcommunication networks. This network characteristic may be the samenetwork characteristic determined at the block 604, or it may be adifferent network characteristic. For example, the dynamic routingsystem 108 may measure signal strength for the destination device withrespect to each supported communication network as with the exampledescribed above with respect to the source device, or it may measurebandwidth. In some embodiments, both at the block 604 and the block 614,the network characteristics may include or may be a combination ofmultiple network characteristics. At block 616, the dynamic routingsystem 108 may complete the call using the communication networkassociated with the more desirable value. For example, the call may becompleted with the communication network that has the highest signalstrength or the lowest call drop rate for the destination device. Ifmultiple communication networks are associated with the more desirableor better network characteristic value, an auxiliary selection processmay be performed, such as a random communication network selection, aselection based on alternative network characteristics, a round-robinselection, a selection based on pricing, or a selection based on userpreferences.

If it is determined at the decision block 612 that the destinationdevice does not support multiple communication networks, a communicationnetwork is selected to complete the call using an auxiliary selectionprocess. The auxiliary selection process may include selecting acommunication network from the two or more communication networkssupported by the source mobile device using a random communicationnetwork selection, a selection based on alternative networkcharacteristics, a round-robin selection, a selection based on pricing,or a selection based on user preferences.

If it is determined at the decision block 606 that the differencebetween the network characteristics do satisfy a threshold, the dynamicrouting system 108, at block 608, completes the call using thecommunication network associated with the better or more desired networkcharacteristics for the mobile device 102. In certain embodiments, theblock 608 may include one or more of the embodiments described withrespect to the block 616. In certain embodiments, the dynamic routingsystem 108 may complete the call using the selected communicationnetwork by identifying the selected communication network to the mobiledevice 102. The mobile device 102 can then establish the call with theselected communication network. In some cases, establishing the callwith the selected communication network may include initiating a newcall with the selected communication network and transferring the audiofrom the call received at the block 602 to the new call. Theestablishing of a new call and/or the transfer of the existing call mayoccur without the knowledge of the user making or desiring to make thecall using the mobile device 102.

In some embodiments, a determination of a communication network tocomplete the call may be based at least in part on networkcharacteristics for communication networks available to the sourcemobile device 102 and the destination mobile device 104. In otherembodiments, for a particular call, a communication network may beselected for the outgoing portion of the call placed by the mobiledevice 102 and a communication network may be selected for the incomingportion of the call to the mobile device 104. Thus, a communicationnetwork 106A may be selected for the mobile device 102 to make a call,while a communication network 106C may be selected for the mobile device104 to receive the call.

Rerouting During a Call

FIG. 7 illustrates a flow diagram for one embodiment of a dynamic callrouting process 700 for rerouting an ongoing call in accordance with theteachings of the present disclosure. The process 700 can be performed byany system capable of routing a call including a communications network106 that initially received a call from the mobile device 102, acommunications network 106 that completed the final call connection tothe mobile device 104, a communications network somewhere in between, adynamic routing system 108, and/or the like. Although a number ofdifferent systems may perform some or all of the process 700, tosimplify discussion, the process 700 will be described with respect toparticular systems.

The process begins at block 702 when, for example, the dynamic routingsystem 108 establishes a call between a source device 102 and a targetdevice 104 using a first communication network 106. Establishing thecall may include selecting the first communication network 106 using,for example, the process 200, the process 600, or any other process forselecting a communication network from among a plurality ofcommunication networks. Further, establishing the call may includeconnecting the device 102 to the device 104 using the selected network.Alternatively, establishing the call may include providing the device102 with an identity of the communication network enabling the device102 to establish the call using the selected communication network.

At block 704, the dynamic routing system 108 measures, or otherwisedetermines, a network characteristic for the first communicationnetwork, which may use a first network protocol. For example, thedynamic routing system 108 can determine a signal strength, a bandwidth,or a dropped call rate for the first communication network. For example,the network characteristic can include one or more networkcharacteristics described in FIG. 3 above.

At decision block 706, the dynamic routing system 108 determines if themeasured network characteristic satisfies a threshold value. If themeasured network characteristic satisfies the threshold, the process 700returns to the block 704 where the dynamic routing system 108 maycontinuously, intermittently, or periodically measure the networkcharacteristic. In some embodiments, a threshold can be determined basedon an identified pattern. For example, a threshold can be determinedbased on a pattern identified in the historical data for a user deviceof FIG. 4. The pattern can be identified between a network protocol anda characteristic of the historical data for the user device, and thethreshold can be established based on this pattern. For example, thehistorical data for a user device can indicate a high packet loss for amountainous region for the GSM protocol. If the user is travelingthrough the mountainous region at a later time using the CDMA protocol,the system may set the packet loss threshold to be higher for switchingto the GSM protocol. In another example, the historical data for theuser can indicate that the CDMA protocol has historically performedbetter (e.g., higher call clarity or less dropped calls) than the GSMprotocol for the mountainous region. In some such cases, the system mayautomatically default calls to a network using the CDMA protocol. Thesystem may switch to the GSM protocol based on an average differencebetween the historical performance of a network implementing a CDMAprotocol and a network implementing a GSM protocol.

In some embodiments, the threshold can be a dynamic threshold. Forexample, a wireless device can be connected to a call using a firstprotocol. The system can identify performance of network characteristicsfor the first protocol. The system can also identify performance ofnetwork characteristics for the second protocol. For example, as thecaller is traveling from one destination to another while on the call,the performance of network characteristics for the first protocol maydiminish, while the performance of network characteristics for thesecond protocol may improve. The threshold to switch the call from thefirst protocol to the second protocol can be dynamically adjusted basedon the change of the performance of network characteristics for thefirst and second protocols. In one embodiment, the dynamic threshold canbe adjusted based on an average of the performance of networkcharacteristics for the first and second protocols. In anotherembodiment, the dynamic threshold can be based on the performance of thenetwork characteristic for the first protocol diminishing below theperformance of the network characteristic for the second protocol. Forexample, the dynamic threshold can be based on the performance of thenetwork characteristic for the first protocol diminishing below theperformance of the network characteristic for the second protocol for aparticular time period.

If it is determined that the measured network characteristic does notsatisfy the threshold, the dynamic routing system 108, at block 708,identifies a second available communication network, which may use asecond network protocol that differs from the first network protocol.Alternatively, both networks may use the same network protocol, but maybe maintained by different vendors and/or may use different frequencybands.

At the block 710, the dynamic routing system 108 measures the networkcharacteristic for the second communication network. The block 710 mayinclude one or more of the embodiments described with respect to theblock 704.

At decision block 712, the dynamic routing system 108 determines whetherthe network characteristic measured, or otherwise obtained, at the block710 satisfies the threshold. If it is determined that the measurednetwork characteristic for the second communication network does notsatisfy the threshold, the process may return to the block 704. In someembodiments, the time between successive measurements of the networkcharacteristic at the block 704 may differ based on whether the process700 returned to the block 704 from the decision block 706 or thedecision block 712. Further, in some embodiments, the time betweensuccessive measurements of the network characteristic at the block 704may differ based on whether the user associated with the device 102 hasmoved a threshold distance. For example, the block 704 may be repeatedmore frequently for a user who is moving at more than a threshold rate,such as a user who may be in a moving vehicle or is walking around aneighborhood or town. The process 700 may be performed more frequentlywhen the user is moving than when the user is stationary, or relativelystationary, because the user may pass through more cell regionsassociated with different base stations. Alternatively, or in addition,the process may be performed more frequently when a user is moving(e.g., driving or walking) because the user may pass by more obstaclesthat can affect wireless coverage compared to when the user isstationary (e.g., sitting at home or at work). In some embodiments, theprocess 700 may end instead of returning to the block 704.

If at decision block 712 it is determined that the networkcharacteristic measured at the block 710 for the second communicationnetwork satisfies the threshold, the dynamic routing system 108, at theblock 714, reroutes the call using the second communication network.Rerouting the call may include establishing a second call with thesecond communication network and transferring the audio to the secondcall after establishing the second call. The initial call may then beended. In some embodiments, the dynamic routing system 108 reroutes thecall by instructing the mobile device 102 to establish the new call andto switch the audio to the new call. In some embodiments, the call isrerouted without knowledge of the users involved in the call.

In some embodiments, the threshold used at the decision block 706 andthe decision block 712 may differ. For example, the threshold todetermine whether a network may exist that may provide better service orsatisfy particular desired criteria (e.g., the threshold at the block706) may be lower than the threshold used to determine whether to selecta new communication network to process the call (e.g., the threshold atthe block 712). Advantageously, by using different thresholds, it ispossible to account for communication resource costs involved inswitching or rerouting an existing call. Moreover, in certainembodiments, by using a higher threshold to determine whether to switchcommunication networks rather than a threshold used to determine whetheradditional networks exist, the continuous and repeated rerouting ofcalls between two networks can be reduced.

In certain embodiments, instead of, or in addition to, determining thatthe network characteristic of the second communication network satisfiesa threshold, the decision block 712 may include determining whether thenetwork characteristic for the second communication network is more thana threshold degree higher or better than the network characteristic forthe first communication network. Advantageously, in certain embodiments,by ensuring the second communication network is more than a thresholddegree better than the first communication network before rerouting thecall, the occurrence of continuous and repeated rerouting of callsbetween two networks can be reduced.

Dual-SIM Wireless Devices

Cellular communication networks often use subscriber identity modules(SIM) to identify a user of a wireless device. The SIM card is oftenimplemented as a type of smartcard or integrated circuit that isinserted into a wireless device and communicates with a processor of thewireless device and/or a communication network. The SIM card willinclude information that uniquely identifies the user and/or wirelessdevice. For example, the SIM card may securely store an internationalmobile subscriber identity (IMSI) number and its related key. Thisinformation stored on the SIM card may be used to identify andauthenticate users or subscribers of a mobile or wireless device. TheSIM card may additionally include a unique serial number, such as anintegrated circuit card identifier (ICCID), security authentication andciphering information, temporary information related to a local network(e.g., a cellular or other wireless network), a list of servicesaccessible by a user, and one or more passwords (e.g., a personalidentification number (PIN), and a personal unblocking code (PUC) forPIN unlocking). The SIM card is often required to enable a wirelessdevice to connect to and/or communicate with a particular cellularnetwork associated with the SIM card. Further, a SIM card of onecellular network is often unusable for a wireless device to connect toand/or communicate with another cellular network. For example, awireless device with a SIM card that enables communication with aT-Mobile® network typically cannot communicate with a Verizon® or ATT®network. A user desiring to communicate on the Verizon® or ATT® networkmust usually change the SIM card with one that is associated with theVerizon® or ATT® network.

Most wireless devices support a single SIM card and thus, most wirelessdevices can only communicate with a single cellular communicationnetwork at any given time. Some wireless devices may support two SIMcards enabling the wireless device to communicate with two cellularnetworks. However, typically only one SIM card may be active at a time.Thus, the wireless device can only communicate with a single cellularnetwork associated with the active SIM card. Moreover, to switch SIMcards and communicate with another cellular network using the second SIMcard, the wireless device typically must be reset or restarted, or thenetwork subsystem at a minimum must be rebooted. When the wirelessdevice is restarted or rebooted, the second SIM card can be selected asthe active SIM card.

Often, if inconvenient at all, the restarting of the wireless device orthe network subsystem of the wireless device is only a minorinconvenience because, for example, users often only switch SIM cardsand/or cellular networks when travelling to a different country. In suchcases, the phone is usually turned off or is in “airplane” mode duringtransit. Thus, the switching of SIM cards may be considered part of theturning on of the wireless device at the new location.

However, beyond travelling between countries or distant geographiclocations associated with different cellular networks, there may beadditional times when it can be beneficial to change cellular networks.For example, as a user travels in a more limited area or within aparticular country, the coverage area or strength of a particularcellular network may vary. Usually a user's quality of service whenusing the wireless device corresponds to limitations of the particularcellular network subscribed to by the user. However, in some cases, itis desirable to maintain an improved quality of service by switchingbetween cellular networks to maintain service using the cellular networkthat provides the best connection or highest signal strength in anyparticular area. Further, it may be desirable to have connections tomultiple cellular networks simultaneously to improve multitasking withthe wireless device. For example, a user may desire to download orstream content (e.g., music, movies, or games) from one or more contentproviders simultaneously, and/or while on a voice call with anotheruser. In some such cases, each service or action may affect the qualityof service or the other service or action when performed duringconnection to a single cellular network. However, by connecting tomultiple cellular networks, it is possible to perform multiple taskswith minimal impact on each task. Moreover, it is possible to assignhigher priority tasks, or tasks that require more bandwidth (e.g.,high-definition content download) or a better connection to one cellularnetwork while assigning lower priority tasks or tasks that require lessbandwidth (e.g., a voice call) to another cellular network that may havelower signal strength.

Embodiments disclosed herein present a system and methods that enable awireless device to communicate over multiple cellular networks withoutthe aforementioned problems. For example, embodiments disclosed hereinpresent a wireless device that is capable of communicating with multiplecellular networks at the same time, or substantially the same time,without requiring the wireless device to be reset or to reboot some orall of the wireless device. Further, embodiments disclosed hereinpresent a wireless device that can switch the cellular network that isperforming a task (e.g., downloading media, performing a voice call)prior to performing the task and/or during the task without downtime orloss of access to the cellular network during the transition betweencellular networks.

FIG. 8 illustrates a comparative example of a portion of a dual-SIMwireless device 800. As illustrated, the wireless device 800 may includetwo SIM cards 802, 804 that may communicate with a processor 806. Theprocessor 806 may control communication with a pair of cellular networksassociated with the SIM cards 802, 804, respectively. Further, thewireless device 800 includes a single or primary antenna 808 fortransmitting and receiving voice or data packets over a cellularnetwork. The wireless device 800 further includes a modem 810 and RFsubsystem 812, which way include a front-end module, filter, or otherradio frequency hardware for separating or combining signals that arereceived or are to be transmitted over the cellular network. The modem810 may convert data for transmission via the primary antenna 808. Themodem 810 can convert digital data packets to modulated electricalsignals for transmission via the primary antenna 808. The RF subsystem812 may include radio frequency diplexers, duplexers, and amplifiers forfacilitating transmission and reception of wireless signals. Forexample, the RF subsystem 812 may include a front-end module configuredto filter and amplify (e.g., using a low noise amplifier) a receivedsignal. Further, the front-end module may further include one or morepower amplifiers for amplifying a signal for transmission.

The wireless device may include a diversity antenna 814 that may be usedto help determine signal strength. The diversity antenna 814 may obtainan independent sample from signals received by the wireless device.These independent samples may be used to measure the signal strength ofsignals received from the cellular network associated with the SIM card802 or the SIM card 804. Typically, the diversity antenna is for receiveonly and does not transmit signals, including voice or data packets. Assuch, the wireless device does not include a modem in connection withthe diversity antenna 814.

To switch between networks associated with the SIM 802 or SIM 804, thewireless device 800 may be rebooted or turned off and then back on.Alternatively, the network subsystem may be reset. In either case,communication with a cellular network is generally not maintained whilethe active SIM is switched between SIM 802 and SIM 804.

FIG. 9 illustrates an example of cellular coverage across differentcommunication technologies. Each of the circles represents the coverageof a single base station implementing a particular communicationtechnology. For ease of illustration, some circles associated with 4Gand/or 5G communication are omitted. However, it should be understoodthat more circles representing more base stations may exist to covermore of the geographic area represented by the circle 902.

The circle 902 may represent a geographic area with 3G cellular coverageprovided by a single 3G base station. A base station implementing 3Gcommunication technology may have wider geographic coverage compared tobase stations that implement 4G or 5G communication technology asrepresented by the circles 904 and 906. Thus, more 4G or 5G basestations may be required to cover the same geographic area as a 3G basestation. Further, more base stations implementing 5G technology may berequired than base stations implementing 4G technology to cover the samegeographic area. Thus, although newer cellular communicationtechnologies may provide benefits, such as improved bandwidth orimproved download/upload speeds, the coverage may be worse in particulargeographic areas. It is therefore desirable to have wireless devicesthat can take advantage of different competitors' cellular networks toimprove the chance of optimal coverage in any particular area. Forexample, it is advantageous to have a wireless device that cancommunicate over 2, 3, or more cellular networks without input from auser and/or without restarting or rebooting the wireless device or thenetwork subsystem, which may include one or more pieces of hardware thatfacilitate communication over a network, of the wireless device.

Example Dual-SIM and Dual-Data Active Device

FIG. 10 illustrates an example of a portion of a dual-SIM dual-dataactive wireless device 1000 in accordance with certain embodiments. Asdiscussed above, with respect to the wireless device 800, a wirelessdevice may have multiple SIM cards. Such a device may be referred to asa dual-SIM device. As previously discussed, the dual-SIM device can onlycommunicate with a single communication or cellular network at a timeusing a single SIM card. To communicate using the second SIM card, thewireless device must be reset to switch the active SIM card to thesecond SIM card.

A dual-SIM dual-data active wireless device enables a wireless device tocommunicate with multiple cellular networks using multiple SIM cardswithout needing to reset the wireless device, or network subsystem,which can cause temporary loss of a connection for a period of time,e.g., 20, 30, or 45 seconds. Although the temporary loss of connectionmay be acceptable when the wireless device is not in use, it can beproblematic during a call or when the wireless device is accessingcontent on a network. A dual-SIM dual-data active wireless device mayinclude a wireless device that can transmit and/or receive data packetson two cellular networks associated with two different SIM cards at thesame time, or substantially the same time (e.g., within 1, 2, or 5microseconds apart, or close enough in time that a user does notexperience a loss or reduction in service).

In some embodiments, data packets transmitted over one cellular networkmay be associated with a first task, and data packets transmitted overanother cellular network may be associated with the first task or asecond task. For example, the first task may be accessing media at afirst network site or from a first media service and the second task maybe a voice call with another user or accessing media from anothernetwork site or media service. The data packets may be received ortransmitted over the two cellular networks simultaneously orsufficiently close enough in time such that a user does not notice aninterruption in services or an interruption in the performance of eitherthe first task or the second task. In other words, in certainembodiments, the user may download content from a media site over thefirst communication network while talking to another user over thesecond communication network without any interruption in either task.

The wireless device 1000 of FIG. 10 includes a number of similarelements as the wireless device 800 as indicated by the re-use ofcertain reference numbers. The wireless device 1000 may be, or maymimic, a dual-SIM dual-data active wireless device in that the wirelessdevice 1000 can receive communications from multiple cellular networkssimultaneously, and can transmit across multiple cellular networks.However, at a particular point in time, the wireless device 1000transmits across one cellular network. The wireless device may switchthe active SIM associated with the desired cellular network dynamicallyand without restarting the wireless device enabling the wireless device1000 to function similarly to a dual-SIM dual data active wirelessdevice.

The wireless device 1000 includes a second RF subsystem 1002. The secondRF subsystem 1002 may be configured similarly to, and may performsimilar actions as, the RF subsystem 812. However, while the RFsubsystem 812 may process signals received on the primary antenna 808,the RF subsystem may process signals received by the diversity antenna814. Thus, in some cases, the RF subsystem 812 may process signals froma first cellular network associated with the SIM 802 that are receivedby the primary antenna 808, and the RF subsystem 1002 may processsignals from a second cellular network associated with the SIM 804received by the diversity antenna 814. In other cases, the RF subsystem812 may process signals from the second cellular network associated withthe SIM 804 that are received by the primary antenna 808, and the RFsubsystem 1002 may process signals from the first second cellularnetwork associated with the SIM 802 received by the diversity antenna814.

As illustrated in FIG. 10, the signal path that includes the RFsubsystem 812 includes the modem 810. However, the signal path thatincludes the RF subsystem 1002 omits the modem. Accordingly, in certainembodiments of the wireless device 1000, the signal path that includesthe RF subsystem 812 may both receive and transmit voice and/or datapackets using the primary antenna 808. However, the signal path thatincludes the RF subsystem 1002 may receive signals, but may not transmitsignals via the diversity antenna 814. Further, the signals received atthe diversity antenna 814 from the second cellular network may be alldata packets, which may include voice data packets (e.g., VoLTE), butmay omit voice packets. Accordingly, in certain embodiments, the RFsubsystem 1002 may be a slimmed down version of the RF subsystem 812.For example, while the RF subsystem 812 may include a power amplifiermodule with one or more power amplifiers for amplifying a signal priorto transmission, the RF subsystem 1002 may omit the power amplifiermodule. The slimmed down RF subsystem 1002 may thus be smaller inphysical area and may use less power than the RF subsystem 812.

In certain embodiments, the wireless device may include a tuner 1004 anda tuner 1006. The tuners 1004, 1006 may include any type of filter thatcan separate the signals received on the antennas 808, 814. For example,the tuner 1004 may include a band-pass filter to pass signals associatedwith a first cellular network associated with SIM 802 and one or moreband-stop filters to remove signals (e.g., noise, undesired harmonics,frequency bands associated with other wireless or cellular networks, andthe like) not associated with communication with the first cellularnetwork. Similarly, the tuner 1006 may include a band-pass filter topass signals associated with a second cellular network associated withSIM 804 and one or more band-stop filters to remove signals notassociated with communication with the second cellular network. Further,the tuners 1004, 1006 may convert the received RF signals from thecellular networks into a fixed frequency that facilitates furtherprocessing by the RF subsystems 812, 1002 and/or the hardware processor806.

The tuner 1006 may further be configured to determine whether a receivedsignal is from a cellular network implementing CDMA, TDMA, GSM, or someother type of communication protocol or standard. In some cases, thedetermination may be made based on a header that identifies thetransmitter of the signal or data packer. In other cases, thedetermination may be made based on the signal characteristics. Based onthe determination of the type of communication protocol, the tuner 1006may cause a modification in the configuration of the RF subsystem 812.Alternatively, or in addition, the RF subsystems 812, 1002 may determinethe type of cellular network or the communication protocol implementedby the cellular network. In yet other embodiments, the processor 806 maydetermine the type of cellular network or the communication protocolimplemented by the cellular network, and may configure the RF subsystems812, 1002 accordingly.

In certain embodiments, the processor 806 may determine that the secondcellular network associated with the SIM 804 is preferable fortransmission. For example, the processor 806 may determine that thecurrent signal strength of the second cellular network exceeds, orexceeds by a particular threshold, the current signal strength of thefirst cellular network. Additionally, or alternatively, the processor806 may determine that transmission should occur over both the firstcellular network and the second cellular network using both SIM 802 andSIM 804, respectively. For example, the processor 806 may determine thatthe wireless device 1000 is attempting to transmit media (e.g.,pictures) to a cloud network service (e.g., Dropbox®), and is attemptingto establish and maintain a voice call, either using voice-packets ordata packets (e.g., Voice over LTE (VoLTE)), or to transmit other datapackets using another service (e.g., send email using an emailprovider). In some such cases, the wireless device 1000 may maintainalso receive signals associated with the cellular network that iscurrently transmitting. Thus, in some such cases, either antenna 808,814, and corresponding signal path, may receive signals from eithercellular network associated with the SIMs 802, 804. As such, in someembodiments, the tuner 1004 may further include a band-pass filter topass signals associated with the second cellular network associated withSIM 804 and one or more band-stop filters to remove signals notassociated with communication with the second cellular network.Similarly, the tuner 1006 may further include a band-pass filter to passsignals associated with the first cellular network associated with SIM802 and one or more band-stop filters to remove signals not associatedwith communication with the first cellular network.

It should be understood that the tuners 1004, 1006 may include othertypes of filters and may include other circuitry for performing otherfunctions related with the receipt of one or more signals associatedwith one or more cellular and/or wireless networks. Further, the tuner1006 may additionally include circuitry for performing functions relatedto the transmission of signals associated with one or more cellularand/or wireless networks. In certain embodiments, the tuners 1004, 1006may be optional or omitted. For example, the functionality of the tuners1004, 1006 may be included in the RF subsystems 812, 1002, respectively.Further, in certain embodiments, the wireless device 1000 may furtherinclude one or more additional filters, diplexers, duplexers, or othercircuitry for splitting and/or combining signals for communication withthe cellular networks.

To enable the additional signal path that includes the RF subsystem toreceive signals from one or more of the cellular networks, the diversityantenna 814 may include an additional connection 1008. The connection1008 may provide the signal received at the diversity antenna 814 to thetuner 1004. Accordingly, the received signal received by the diversityantenna 814 may be provided to both the tuner 1006 and the tuner 1004.The signal provided by the antenna 814 to the signal path that includesthe tuner 1006 may be used to measure a signal strength of a cellularnetwork in communication with the wireless device 1000. The signalprovided by the antenna 814 to the signal path that includes the tuner1004 may be processed to obtain data received over the cellular networkin communication with the wireless device 1000.

The RF subsystem 1002 may be in communication with a port of theprocessor, such as an auxiliary port. The port may be a pin 1010 that isincluded on the processor 806 that enables an auxiliary device tocommunicate with the processor 806. Advantageously, in certainembodiments, by connecting the second signal path to another port of theprocessor 806 (e.g., the pin 1010) it is possible to switch the activeSIM 802 or 804 without resetting, rebooting, or otherwise losingcommunication to one of the cellular networks.

In certain embodiments, the auxiliary device is the second RFcommunication path that permits signals received from a cellular networkat the diversity antenna 814 to be provided to the processor 806. Theprocessor 806 can receive data from a second cellular network associatedwith the second SIM 804 over the diversity antenna 814 via the second RFsubsystem 1002 connected to the auxiliary port. In some embodiments, thepin 1010 is not an auxiliary port but is associated with a particularfeature of the processor 806. In some such embodiments, the pin 1010 canbe repurposed to receive communication signals from a cellular networkover the antenna 814 in place of the feature previously associated withthe pin 1010. Accordingly, in certain embodiments, existing processors806 can be retrofitted to support multiple cellular networkscommunicating with the wireless device 1000 in concert.

Further, the processor 806 can switch the SIM 802, 804 card that isusing the first or primary RF subsystem 812 enabling the wireless device1000 to transmit over either cellular network using the primary, ornon-diversity, antenna. The processor 806 may determine the SIM 802, 804card, or cellular network, to connect to or communicate with using theprimary antenna 808 based on a detected signal strength of the twonetworks. Although the embodiment of FIG. 10 enables the wireless device1000 to receive data from both cellular networks at the same time,transmission may occur over a single cellular network at a particularpoint in time. Thus, in some cases, the wireless device may not be abi-directional dual-data dual-active device where both SIMs 802, 804 aresimultaneously active for both transmission and reception. However, theprocessor 806 may rapidly (e.g., within a few microseconds ormilliseconds) switch the SIM 802, 804 cards associated with the primaryantenna 808 or the SIM 802, 804 that is active a particular point intime. In some such cases, the rapid switching of which SIM 802, 804 isactive and/or which SIM 802, 804 is operating over the signal path thatincludes the antenna 808, may make it undetectable to a user thattransmission is occurring via one of the cellular networks and not bothcellular networks.

The switching of the active SIM 802, 804, or the SIM that is receivingand transmitting may be determined and/or performed by firmware Thisfirmware may operate at the kernel or operating system level of theprocessor 806. The firmware may determine the active SIM 802, 804, orthe SIM 802, 804 (and associated cellular network) to select forcommunication based on signal strength for the cellular networks. Inaddition, or alternatively, the SIM 802, 804 may be selected based onthe available bandwidth, the quality of service of the connection, thestability of the connection, a cost associated with the cellular networkor any other characteristics associated with the cellular networks orconnections therewith.

In certain embodiments, the wireless device 1000 may lose connection fora short period of time (e.g., less than 30 seconds, within 5 seconds,within a second, and any value between the foregoing) when switchingactive SIM cards. In some such embodiments, the wireless device 1000 maybe configured to not switch active SIMs during an ongoing phone call.Thus, in certain embodiments, a user may not lose voice service during atransition between networks.

Second Example Dual-SIM and Dual Data Active Device

FIG. 11 illustrates a second example of a dual-SIM dual-data activewireless device 1100 in accordance with certain embodiments. Thewireless device 1100 of FIG. 11 includes a number of similar elements asthe wireless devices 800 and 1000 as indicated by the re-use of certainreference numbers. As previously discussed, the wireless device 1000 maytransmit over a single cellular network at a particular point in time.In contrast, the wireless device 1100 may have multiple active SIM cardsand may communicate (e.g., both transmit and receive) with multiplecellular networks at a particular point in time. Thus, the wirelessdevice 1100 may simultaneously receive and/or transmit signals usingmultiple cellular networks. The embodiments of FIG. 11 enables thewireless device to both receive and transmit over at least two cellularnetworks simultaneously, or at substantially the same time, by includinga second pair of primary and diversity antennas. Further, the embodimentof FIG. 11 provides the ability to communicate with more than twocellular networks by replicating the features of the embodiments of FIG.10.

The wireless device 1100 may include a modem and RF subsystem 1102 thatcombines the modem and RF subsystem previously described. It should beunderstood that the modem and RF subsystem may be implemented on asingle die (as illustrated) or on multiple separate chips or dies.Further, the wireless device 1100 may include a filter 1104. The filter1104 may include one or more filters that separate the desired frequencyband from other received frequencies. For example, the filter 1104 mayseparate frequency bands associated with communication with a cellularnetwork corresponding to the SIM 802 from frequency bands associatedwith communication with other cellular networks, such as thosecorresponding to SIMs 1118, 804, and 1120, respectively. The filter 1104may provide the signals associated with the cellular networkcorresponding to the SIM 802 to the modem and RF subsystem whilediscarding the other signals. Alternatively, or in addition, the filter1104 may filter out noise and undesired harmonics from the receivedsignals. For example, in some cases, a second or third harmonic of areceived RF signal may match the frequency of another communication bandassociated with another cellular network or with another wirelesscommunication technology, such as Wi-Fi®. To reduce or preventinterference, the filter 1104 may filter out the undesired harmonic. Itshould be understood that the depiction of the separate filter 1104 andtuner 1004 is for illustrative purposes. In certain embodiments, thefilter 1104 may be included as part of a tuner (not shown). Further, thetuner 1004 may include one or more filters. Accordingly, in certainembodiments the element 1104 may be replaced with a combined (orseparate pair of) tuner and filter element. Similarly, the tuner 1004may be replaced with a combined (or separate pair of) tuner and filterelement.

The wireless device 1100 may include an upper portion 1122 and a lowerportion 1124. The upper portion 1122 may be associated with a pair ofSIMs 802, 1118 that correspond to a pair of cellular networks. Further,the upper portion 1122 may include similar elements and functionality asthe wireless device 1000. Thus, the upper portion 1122 may receivesignals from two different cellular networks associated with the SIMs802, 1118, and can transmit at any particular point in time over one ofthe pair of cellular networks.

The lower portion 1124 may be a duplicate of the upper portion 1122. Butthe lower portion 1124 may be associated with a different pair of SIMs804, 1120. In certain embodiments, both the lower portion 1122 and theupper portion 1124 of the wireless device 1100 may include and may becontrolled by the processor 806. Further, each of the lower portion 1122and the upper portion 1124 of the wireless device 1100 may separatelyreceive and/or transmit to a cellular network corresponding to one ofthe active SIMs. Thus, in certain embodiments, the wireless device 1100may receive communication from up to four cellular networkssimultaneously. Further, the wireless device 1100 may transmit to up totwo cellular networks simultaneously. Moreover, as with the wirelessdevice 100, each of the upper portion 1122 and the lower portion 1124may switch the active SIM enabling transmission with up to four cellularnetworks.

As illustrated, the lower portion 1124 may have its own primary antenna1114 and diversity antenna 1116 pair. Alternatively, in certainembodiments, the upper portion 1122 and the lower portion 1124 may shareaccess to one primary antenna (e.g., the primary antenna 808) and onediversity antenna (e.g., the diversity antenna 814).

As with the upper portion 1122, the lower portion 1124 of the wirelessdevice may include a combined modem and RF subsystem 1106 or mayseparate the modem and RF subsystem. Further, the lower portion 1124 mayinclude a filter 1108 that filters signals received by the primaryantenna 1114 before providing the received signals to the modem and RFsubsystem 1106. The signal path with the modem and RF subsystem 1106 andfilter 1108 can both receive from and transmit signals to the cellularnetworks associated with the SIM 804 and the SIM 1120.

The lower portion may further include an RF subsystem 1110 and tuner1112 that can receive signals via the diversity antenna 1116 from thecellular networks associated with the SIM 804 and the SIM 1120. Incertain embodiments, the processor 806 communicates with the cellularnetworks associated with the SIM 802 and SIM 1118 using the upperportion 1122 of the wireless device 1100 and communicates with thecellular networks associated with the SIM 804 and SIM 1120 using thelower portion 1124 of the wireless device 1100. Thus, the elements ofthe upper portion 1122 and the elements of the lower portion 1124 may beconfigured to process specific signal bands and to use specificencodings corresponding to the two SIMs of the upper portion 1122 andthe lower portion 1124, respectively. Advantageously, in certainembodiments, the segregating of the portions of the wireless device 1100that communicate with the different cellular networks enables the modemand RF subsystems 1102, 1106 and the RF subsystems 1002 and 1110, aswell as associated filters and tuners to be implemented using lesscircuitry.

Optionally, in certain embodiments, both the upper portion 1122 and thelower portion 1124 can communicate with some or all of the cellularnetworks corresponding to the SIMs 802, 1118, 804, and 1120.Advantageously, in certain embodiments, by enabling the upper portion1122 and the lower portion 1124 to communicate with any of the cellularnetworks associated with the four included SIMs, the wireless device1100 can transmit data packets or signals to any two of the cellularnetworks simultaneously.

Although the wireless device 1100 is illustrated as supporting up tofour cellular networks, it should be understood that the wireless device1100 can be modified to support more or fewer cellular networks. Forexample, the lower portion 1124 may include one SIM. As another example,an additional set of hardware may be included to enable communicationwith a fifth or sixth cellular network. In certain embodiments, thewireless device 1100 may require more power than the wireless device1000 requiring a bigger battery and/or reducing battery life. However,the wireless device 1100 can support communication with a greater numberof cellular networks. Further, in certain embodiments, the ability tocommunication with more cellular networks may in some cases reducerequired power by providing increased flexibility to switch to acellular network that has greater signal strength. For example, whilethe wireless device 1000 may select from up to two cellular networks,the wireless device 1100 may select from up to four cellular networkswith which to communicate. As signal strength may vary based on thelocation of the wireless device, the wireless device 1100 may have moreflexibility to select the cellular network with the strongest signal ata particular geographic area or time. In some cases, the increasedflexibility may negate some of the increased power requirements of thewireless device 1100 compared to the wireless device 1000.

Third Example Dual-SIM and Dual Data Active Device

FIG. 12 illustrates a third example of a dual-SIM dual-data activewireless device 1200 in accordance with certain embodiments. Thewireless device 1200 of FIG. 12 includes a number of similar elements asthe wireless devices 800, 1000, and 1100 as indicated by the re-use ofcertain reference numbers. The wireless device 1200 includes a secondmodem 1200 that enables transmission over a second cellular networkusing a second SIM 804 at substantially the same time as transmission orcommunication over a first cellular network using a first SIM 806. As aseparate modem is within the signal path of the second primary antenna1114, both primary antennas 808 and 1114 can transmit to two differentcellular networks associated with two different SIMs (e.g., SIM 802 or1118, and SIM 804, respectively). Although not illustrated, the modem1202 may include an RF subsystem for processing received RF signalsreceived by the primary antennas 1114 and/or the diversity antenna 1116.Further, the RF subsystem of the modem 1202 may facilitate transmissionvia the primary antenna 1114.

The second modem 1200 may include an embedded processor 1204 that cancommunicate with a port 1206, such as an auxiliary port or otherreserved of the main or primary processor of the wireless device 1200.The port 1206 may be a pinout (e.g., pin 1010) or any other type ofinterface with the processor 806. In some embodiments, the mainprocessor (e.g., processor 806) may support multiple SIM cards and thus,the wireless device 1200 may include a third SIM 1118 card. This thirdSIM card may be optional as indicated by the dashed line box for the SIM1118. In some embodiments, the wireless device of FIG. 12 may furtherinclude the embodiment of FIG. 10.

Advantageously, in certain embodiments, the wireless device 1200 canhave at least two active SIMs enabling communication with at least twocellular networks simultaneously. Further, the inclusion of multiplemodems 810, 1202 enables transmission of data and/or voice packets bythe wireless device 1200 to multiple cellular networks simultaneously.Further, in certain embodiments, the wireless device 1200 uses lesspower than the wireless device 1100.

The connection between the processor 1204 and the processor 806 may be adirect connection with a pin or port 1206 of the processor 806. In somecases, the connection between the processor 806 and the processor 1204may be a conductive trace on a printed circuit board that includes boththe processor 806 and the processor 1204.

In the wireless device 1200, the processor 806 may continue to serve asthe main processor or the primary processor. Thus, for example, theprocessor 806 may select the cellular network with which to communicatefor a particular task (e.g., a call or access to a content service).Further, the processor 806 may execute kernel level, operating systemlevel, and application system tasks. In addition, the processor 806 mayprocess user interactions with the wireless device 1200. The embeddedprocessor 1204 may serve as a secondary processor. The processor 1204may be at least partially controlled by the processor 806. Further, theprocessor 1204 may be a control host for the modem 1202.

Fourth Example Dual-SIM and Dual Data Active Device

FIG. 13 illustrates a fourth example of a dual-SIM dual-data activewireless device 1300 in accordance with certain embodiments. Thewireless device 1300 of FIG. 13 includes a number of similar elements asthe wireless devices 800, 1000, and 1100 as indicated by the re-use ofcertain reference numbers. The embodiments of FIG. 13 include anadditional modem and RF subsystem 1302. The model and RF subsystem 1032may be combined as a single chip as illustrated in FIG. 13, or may beimplemented as two separate chips similar to elements 810 and 812.Further, the elements 810 and 812 may be replaced with a single chipthat combines the mode and RF subsystem similar to the element 1302.Alternatively, the embodiment of FIG. 13 may include the modem 1202 andembedded processor 1204 of FIG. 12.

The modem and RF subsystem 1302 may communicate with a communication hub1304. This communication hub 1304 may connect to the data transferand/or battery charging port 1306 of the processor. Thus, in some suchembodiments, the dual-SIM dual-data active features of the wirelessdevice 1300 can be implemented without the addition of another port onthe processor and/or without using an auxiliary port or repurposing anassigned or existing port of the processor 806. The data transfer and/orbattery charging port 1306 may be a universal serial bus (USB) typeport, such as a standard-size USB port, a mini-USB port, a micro-USBport, or a USB Type C port. It should be understood that the port 1306is not limited to a USB-type port and that the port 1306 can include anytype of port used by the wireless device 1300 for charging and/or datatransfer. Further, the communication hub 1304 may replicate the datatransfer and/or battery charging port 1306 of the processor 806 as theport 1308 of the communication hub 1304 enabling the wireless device1300 to connect to an outlet or another port for data transfer via theport 1308 of the communication hub 1304. In certain embodiments, thecommunication hub 1304 may communicate wirelessly with the processor806, such as via a Bluetooth® or other near-field communicationprotocol. However, to avoid interference with the communications withthe cellular networks, the communication hub 1304 is typicallyconfigured to use a wired communication mechanism. As illustrated in thevarious figures, although described as a dual-SIM dual-data device,various implementations of the wireless devices may support more thantwo SIMs and/or may have more than two active SIMs activelycommunicating data packets with multiple cellular networks.

Second Example Communication Environment

FIG. 14 illustrates an example communication environment 1400 forcommunicating using a dual-SIM dual-data active wireless device 1300.The wireless device 1300 may attempt to communicate with a target system1406 and/or 1412 via the cellular networks 1402 and/or 1404. Thewireless device 1300 may be substituted with any of the embodiments ofthe dual-SIM dual-data active wireless devices described herein. Forexample, the wireless device 1300 may be substituted with the wirelessdevice 1000, 1100, or 1200. Although only two cellular networks 1402,1404 and only two target systems 1406, 1412 are depicted, it should beunderstood that the present disclosure is not limited as such and thatthe communication environment 1400 may include more or fewer cellularnetworks and more or fewer target systems.

The target systems 1406, 1412 may include any device that cancommunicate with the wireless device 1300. For example, the targetsystems 1406, 1412 may each be another wireless device of the same typeor of a different type as the wireless device 1300. Further, the targetsystems 1406 and 1412 may each be of the same type or of differenttypes. As another example, the target systems 1406, 1412 may each be aserver of a network-enabled service. For instance, the target systems1406, 1412 may each be a server or host of a media streaming service, adata backup service, a shopping service or retailer (e.g., Amazon® orWalmart®), a picture printing service, an email service, and the like.In some cases, the target systems 1406, 1412 may each be a server orother computing device of an employer of a user who owns or uses thewireless device 1300.

The wireless device 1300, and any of the previously described wirelessdevices, may include any type of device that can communicate over acellular network. For example, the wireless device 1300 may be or mayinclude a smartphone, a tablet, a laptop, a wearable device (e.g., asmartwatch or smart glasses), or any other device that may include a SIMcard and/or may communicate with a cellular network.

Using embodiments of the dual-SIM dual-data active wireless devicesdisclosed herein, it is possible to communicate over multiple cellularnetworks, which may be maintained by different entities or providers,and which may implement different technologies or use differentfrequency bandwidths. For example, as illustrated in FIG. 14, thewireless device may obtain an identifier, such as an Internet Protocoladdress from each wireless network or cellular network 1402, 1404. Adifferent entity may own or operate each of the cellular networks 1402,1404. For example, the cellular network 1402 may be Verizon's networkand the cellular network 1404 may be Sprint's network. Further, each ofthe cellular networks 1402, 1404 may be configured to operate withdifferent frequency bands, different communication standards orprotocols, or using different types of hardware. Thus, it will often bethe case that a prior art wireless device configured to communicate withcellular network 1402 will be unable to communicate with cellularnetwork 1404, or vice-versa. However, the wireless device 1300, andother wireless devices described herein, may communicate with either orboth cellular networks 1402, 1404. Further, the cellular networks 1402,1404 may include one or more of the embodiments previously describedwith respect to the communication networks 106. In some cases, thecellular networks 1402, 1404 may be data networks configured to transmitdata packets. These data packets may include any type of data. Furtherthe data packets may include or encapsulate voice data. In some cases,the cellular networks 1402, 1404 may transmit both data packets andvoice packets. The cellular networks 1402, 1404 may be configured to usedifferent communication technology, protocols, or frequency bands. Forexample, the cellular networks 1402, 1404 may be 2G, 3G, 4G, 4G LTE, or5G cellular networks that can communicate with the wireless device 1300using various corresponding frequency bands or encodings.

As stated above, the wireless device 1300 may communicate with thetarget system 1406 via one, or in some cases both, of the cellularnetworks 1402, 1404. Further, as stated above, the target system 1406may be another wireless device, such as in the case when a user iscalling another user, or the target system 1406 may be a host server,such as when the user is accessing content from a website or otherservices provider, such as a streaming media service. The wirelessdevice 1300 may determine whether to communicate with the target system1406 based on one or more characteristics of the cellular networks 1402,1404 and/or the connections to the cellular networks 1402, 1404. Forexample, the wireless device 1300 may determine the signal strength of aconnection to each of the cellular networks 1402, 1404 and select one ofthe cellular networks 1402, 1404 with which to establish a connectionwith the target system 1406 based on the signal strength. The wirelessdevice 1300 may then make the corresponding SIM within the wirelessdevice the active SIM to enable communication with the selected cellularnetwork. In some cases, the wireless device 1300 may maintain multipleactive SIMs enabling communication over both the cellular networks 1402,1404 at the same time, or substantially the same time. For example, thewireless device 1300 may communicate with the target system 1406 usingthe cellular network 1402 and communicate with the target system 1412using the cellular network 1404.

In some embodiments, the wireless device 1300 may connect to the dynamicrouting system 1408 using one or more of the cellular networks 1402,1404. The dynamic routing system may include one or more of theembodiments described with respect to the dynamic routing system 108.The wireless device 1300 may provide the dynamic routing system 1408with a measurement of signal strength between the wireless device 1300and a base station of each of the cellular networks 1402, 1404.Alternatively, the dynamic routing system 1408 may determine themeasurement of signal strength associated with the wireless device's1300 connection to each cellular network 1402, 1404 from a system ofeach of the cellular networks 1402, 1404. For example, a base station,routing system, or connection server of each of the cellular networks1402, 1404 may provide the signal strength information to the dynamicrouting system 1408.

As previously stated, the wireless device 1300 may determine thecellular networks 1402, 1404 with which to connect to the target system1406. In other cases, the dynamic routing system 1408 may determine thecellular network 1402, 1404 the wireless device 1300 should use tocommunicate with the target system 1406. The dynamic routing system 1408may select the cellular network 1402, 1404 based at least in part on thesignal strength between the wireless device 1300 and the cellularnetworks 1402, 1404. Alternatively, or in addition, the dynamic routingsystem 1408 may select the cellular network 1402, 1404 based on otherconnection characteristics or service level agreements. For example, thedynamic routing system 1408 may select the cellular networks 1402, 1404based at least in part on one or more of available bandwidth, stabilityof connection between the wireless device and each cellular networks,priority of traffic or data packets, type of data packet (e.g., voicedata packets, media data packets, email, and the like), destination orsource of the data sent or received, bandwidth costs associated with theconnection, monetary costs associated with the connection, userpreferences (e.g., a user may prefer a particular network due, forexample, to costs, balancing of vendor usage, brand loyalty, oridiosyncrasies, and the like).

The dynamic routing system 1408 may inform the wireless device 1300 ofthe preferable or selected cellular network 1402, 1404 or wirelessnetwork provider, with which to communicate with the target system 1406.The wireless device 1300 may make the SIM (e.g., SIM 802, 804) cardassociated with the preferred or selected cellular network active forperforming a desired task (e.g., communicating with the target system1406). In some cases, additional SIM cards may remain active at thewireless device 1300 and may be used to communicate with a correspondingcellular network 1404 to perform another task (e.g., communication withthe target system 1412). In some embodiments, the cellular networks1402, 1404 may be ranked based, for example, on signal strength,bandwidth, stability, and the like, or based on a combination ofcharacteristics. The higher ranked cellular network may be used toperform a task with higher priority. For example, a phone call may beconsidered higher priority than other tasks, such as media download. Inthis example, if the signal strength associated with cellular network1402 exceeds the signal strength associated with cellular network 1404,the phone call may be processed using the cellular network 1402 and themedia download, or other task, may be performed using the same network,or may be performed using the cellular network 1404. The determinationof whether to divide tasks among networks or to use the same network maydepend on the specific task and/or the difference in characteristicsbetween the cellular networks.

Alternatively, or in addition, the higher ranked cellular network may beused to perform a task that requires greater bandwidth or stability, butmay or may not be a higher priority task. For example, a voice callusually requires less bandwidth than many other tasks, such asdownloading a high-definition (HD) movie. Thus, although the cellularnetwork 1402 may provide a better connection or be associated withhigher signal strength, the voice call may be assigned to the cellularnetwork 1404 and the media download to the cellular network 1402. Insome cases, whether or not a task is assigned to a particular cellularnetwork may further depend on whether the connection or signal strengthis sufficient to provide a minimal quality of service for the task. Forexample, continuing the previous example, although the voice call mayrequire less bandwidth than the media download task, if the connectionto the cellular network 1404 is not strong enough to maintain a clearvoice call, the voice call may be allocated, with or without the mediadownload task, to the cellular network 1402.

In certain embodiments, the wireless device 1300 may determine whether adata packet belongs to a particular task for transmission over aparticular cellular network 1402, 1404 based on the source orapplication of the data packet. For example, data packets related to avoice call may be identified based on the source of the data packetbeing from a dialer application and/or based on the dialer applicationapplying a label or tag to the data packet that identifies the datapacket as being for a call (e.g., a voice over data or voice over LTEpacket).

Over time, or as the wireless device 1300 is moved, the determination ofthe cellular network to perform a particular task or over which tomaintain or establish a connection with a target system 1406, 1412 maychange. If the selected cellular network 1402, 1404 changes, thewireless device 1300 may establish a new connection over the newlyselected cellular network, or may use an existing connection with thenewly selected cellular network to perform a task, which may be a newtask or a task-in-progress (e.g., an existing call or download). Toswitch an existing task, or task-in-process, associated, for example,with the target system 1406 from one cellular network 1402 to anothercellular network 1404, the wireless device 1300 may establish a newconnection with the cellular network 1404. The task may be switched tothe newly established connection with the cellular network 1404. Theconnection with the cellular network 1402 may then be dropped, or may bemaintained, but may no longer be used to perform the task associatedwith the target system 1406. The determination of whether to switchcellular networks to perform a task at a particular point in time may bedetermined based, for example, on the changing signal strength ofconnections with the cellular networks 1402, 1404, changing bandwidthavailable, changing connection stability, or any other characteristic ofthe connections to the cellular networks 1402, 1404. Further, in someimplementations, the wireless device 1300 may change the cellularnetworks used to perform a task when a change in connectioncharacteristics exceeds a threshold or when the connectioncharacteristics associated with a particular cellular network exceedsanother cellular network by more than a threshold amount or percentage.Advantageously, in certain implementations, by requiring a thresholdchange or difference between cellular network characteristics, bouncingbetween cellular networks or cellular network connections may be reducedor prevented.

In some embodiments, the wireless device 1300, or the dynamic routingsystem 1408, may maintain a connection to a target system (e.g., thetarget system 1406) using both cellular networks 1402, 1404 andcorresponding SIM cards of the wireless device 1300. The wireless device1300 may communicate over the preferred cellular network (e.g., thecellular network with a higher signal strength connection to thewireless device 1300). As the user of the wireless device 1300 moves(e.g., drives down the road), the preferred cellular network may change.In some such cases, the wireless device 1300 may switch to the newpreferred cellular network using the connection previously establishedwith the new preferred cellular network and maintained throughout thetime, or for at least some of the time, that the wireless device 1300was communicating over the original preferred cellular network.

In some embodiments, the dynamic routing system 1408 may maintain theconnection to the target system 1406 via both cellular networks 1402,1404. As the preferred cellular network for the wireless device 1300 tocommunicate with the target system 1406 changes, the dynamic routingsystem 1408 may transition the connection with the wireless device 1300from the previously preferred cellular network to the currentlypreferred cellular network. As both connections are maintained, thetransition between cellular networks may be performed without servicebeing interrupted.

The communication environment 1400 may include a number of nodes 1410.Each of the nodes 1410 may be the same or may differ in type. The nodes1410 may represent different nodes or hops within a network. At leastsome of the nodes 1410 may be part of the cellular networks 1402 and/or1404. Alternatively, at least some of the nodes 1410 may be part ofanother network in communication with the cellular networks 1402, 1404.In some embodiments, the number of nodes or hops between the wirelessdevice 1300 and the target system 1406, 1412, or the amount of time tocommunicate between nodes or hops, may be a factor in determiningwhether the cellular network 1402 or the cellular network 1404 isselected to connect to a target system 1406, 1412. For example, theconnection between the wireless device 1300 and the cellular network1404 may be associated with a higher signal strength than the connectionto the cellular network 1402. However, the connection to the cellularnetwork 402 may be preferred because there are less hops to the targetsystem 1406 using the cellular network 1402 than the cellular network1404. Thus, in some cases, the particular target system with which thewireless device 1300 desires to connect, or the connectioncharacteristics with the target system may be a factor in selecting thecellular network with which the wireless device 1300 connection to thetarget system 1406.

Each of the previously described embodiments, or aspects, may becombined or implemented separately. For example, the wireless device1200 or 1300 may implement aspects of the wireless device 1000 enablingthe signal paths associated with the process 806 to support two SIMs andtwo corresponding cellular networks while the signal paths associatedwith the modem 1202 or 1302 may simultaneously support one or two SIMsand the one or two corresponding cellular networks. Accordingly, thewireless device 1200 may support dual active dual data communicationacross at least two cellular networks.

Additional Embodiments

Certain aspects of the present disclosure relate to a wireless deviceconfigured to maintain communication channels over multiple datanetworks with each data network configured using a differentcommunication technology or set of frequency bands. The wireless devicemay include: a first primary antenna configured to transmit signals of afirst transmit band and receive signals of a first receive band, and totransmit signals of a second transmit band and received signals of asecond transmit band; a first diversity antenna configured to receivethe signals of the first receive band, and receive the signals of thesecond receive band; a first radio frequency subsystem in electricalcommunication with the first primary antenna and the first diversityantenna, the first radio frequency subsystem configured to decode thesignals of the first receive band and to decode the signals of thesecond receive band; a second radio frequency subsystem in electricalcommunication with the first diversity antenna, the second radiofrequency subsystem configured to decode the signals of the firstreceive band and to decode the signals of the second receive band; and ahardware processor in electrical communication with a first subscriberidentity module, a second subscriber identity module, the first radiofrequency subsystem, and the second radio frequency subsystem, whereinthe first subscriber identity module is associated with a first wirelessnetwork that supports the first transmit band and the first receiveband, and the second subscriber identity module is associated with asecond wireless network that supports the second transmit band and thesecond receive band, and wherein the hardware processor is configured tocontrol whether the first subscriber identity module or the secondsubscriber module uses the first radio frequency subsystem tocommunicate at a particular time period.

The wireless device of the preceding paragraph can include anycombination or sub-combination of the following features: where thewireless device further includes a first modem connected between thefirst radio frequency subsystem and the hardware processor, the firstmodem configured to transmit a packet using the first primary antenna tothe first wireless network or the second wireless network; where thefirst modem is configured to determine whether the packet is a voicepacket or a data packet; where the wireless device further includes: afirst modem connected between the first radio subsystem and the hardwareprocessor, the first modem configured to transmit a packet using thefirst primary antenna to one of the first wireless network or the secondwireless network; and a second modem connected to the hardwareprocessor, the second modem configured to transmit the packet using asecond primary antenna; where the second modem is integrated with asecond hardware processor configured to manage communication with athird wireless network; where the hardware processor serves as a primarydevice and the second hardware processor serves as a secondary device ina primary/secondary communication model; where the second modem isconnected to the hardware processor via an auxiliary port of thehardware processor; where the wireless device further includes acommunication hub configured to connect the second modem to the hardwareprocessor; where the communication hub connects between an external datatransfer or charging port of the wireless device and a data transfer orcharging port of the hardware processor; where the second radiofrequency subsystem is configured to receive the signals of the firstreceive band or the signals of the second receive band, and wherein thesecond radio frequency subsystem does not transmit signals; where thewireless device further includes a tuner in electrical communicationwith the first radio frequency subsystem, the first tuner configured todetermine whether a received signal is a signal of a first channelaccess method or a signal of a second channel access method; where thefirst channel access method comprises one of code-division multipleaccess, wideband code-division multiple access, or time-divisionmultiple access, and the second channel access method comprises one ofcode-division multiple access, wideband code-division multiple access,or time-division multiple access; where the hardware processor isfurther configured to determine a first signal strength of a connectionwith the first wireless network and a second signal strength of aconnection with the second wireless network based at least in part onthe received signals of the first receive band, and the received signalsof the second receive band; where the hardware processor is furtherconfigured to determine whether to communicate with the first wirelessnetwork or the second wireless network based at least in part on thefirst signal strength or the second signal strength; and where the firstwireless network is implemented using a first communication technologyand is associated with a first service provider, and the second wirelessnetwork is implemented using a second communication technology and isassociated with a second service provider.

Certain additional aspects of the present disclosure relate to a methodof communicating over multiple cellular networks. The method may beperformed by a hardware processor of a wireless device configured tocommunicate with a first cellular network over a first frequency bandand a second cellular network over a second frequency band. The methodmay include: receiving, via a first primary antenna of the wirelessdevice, a first signal of the first frequency band from the firstcellular network, wherein the first cellular network is associated witha first subscriber identity module of the wireless device and the secondcellular network is associated with a second subscriber identity moduleof the wireless device, and wherein the first subscriber identity moduleis designated for transmission of data packets; receiving, via a firstdiversity antenna of the wireless device, a second signal of the secondfrequency band from the second cellular network; determining a firstsignal strength associated with the first cellular network based atleast in part on the first signal; determining a second signal strengthassociated with the second cellular network based at least in part onthe second signal; determining that the second signal strength exceedsthe first signal strength; and transmitting first data packets via thefirst primary antenna to a target system over the second cellularnetwork by designating the second subscriber identity module as theactive subscriber identity module for transmitting the first datapackets and designating the first subscriber identity module as not fortransmitting the first data packets.

The method of the preceding paragraph can include any combination orsub-combination of the following features: where the first signal andthe second signal are received during a first time period; where themethod further includes: receiving, at a second time period, a thirdsignal of the first frequency band from the first cellular network;receiving, at the second time period, a fourth signal of the secondfrequency band from the second cellular network; determining a thirdsignal strength associated with the first cellular network based atleast in part on the third signal; determining a fourth signal strengthassociated with the second cellular network based at least in part onthe fourth signal; determining that the third signal strength exceedsthe fourth signal strength; and transmitting second data packets via thefirst primary antenna to the target system over the first cellularnetwork by designating the first subscriber identity module as theactive subscriber identity module for transmitting the second datapackets and designating the second subscriber identity module as not fortransmitting the second data packets; where the first data packets areassociated with non-voice data, and where the method further includes:obtaining second data packets from an application; determining that thesecond data packets comprise voice data associated with a call to adestination wireless device; and transmitting the second data packetsover the first cellular network associated with the first subscriberidentity module while continuing to transmit data packets associatedwith non-voice data over the second cellular network; and where themethod further includes: receiving via a second primary antenna of thewireless device, a third signal of a third frequency band associatedwith a third cellular network; determining a third signal strengthassociated with the third cellular network based at least in part on thethird signal; determining that the third signal strength exceeds thesecond signal strength; transmitting second data packets associated witha first priority over the third cellular network; and transmitting thefirst data packets over the second cellular network, wherein the firstdata packets are associated with a second priority that is lower thanthe first priority.

Yet certain additional aspects of the present disclosure relate to amethod for dynamically routing calls on a first network implementing afirst network protocol to a second network implementing a second networkprotocol. The method may include: receiving a call request generated bya user device via a first network of a first communications networkprovider; determining that the first user device supports a firstnetwork protocol and a second network protocol; determining a firstmeasurement of a network characteristic for the first network associatedwith the first communications network provider, wherein the firstnetwork implements the first network protocol; identifying a secondnetwork associated with a second communications network provider,wherein the second network implements the second network protocol;determining a second measurement of the network characteristic for thesecond network associated with the second communications networkprovider; determining that the second measurement exceeds the firstmeasurement by a threshold amount; and routing the call to the secondnetwork associated with the second communications network provider usingthe second network protocol based at least in part on the determinationthat the second measurement exceeds the first measurement by thethreshold amount.

The method of the preceding paragraph can include any combination orsub-combination of the following features: where the first networkprotocol is a Global System for Mobile Communications (GSM) protocol andthe second network protocol is a Code-Division Multiple Access (CDMA)protocol; where the first network protocol is associated with a firstSIM card and the second network protocol is associated with a second SIMcard; where routing the call to the second network comprises providingthe user device with a command to complete the call using the secondnetwork; where the network characteristic, includes at least one of:jitter, latency, packet loss, an answer/seizure ratio, a call clarityrating, a dropped call rate, a network effectiveness ratio, or a postdial delay; where the network characteristic comprises a signalstrength, and wherein the first measurement comprises a first signalstrength between the user device and the first network, and the secondmeasurement comprises a second signal strength between the user deviceand the second network; where the network characteristic comprises asignal strength, and wherein the first measurement comprises a firstsignal strength between a call destination device and the first network,and the second measurement comprises a second signal strength betweenthe call destination device and the second network; where the methodfurther includes identifying a geolocation of the user device;determining that the user device is within a particular coverage areafor the second network; and routing the call to the second network basedat least in part on the determination that the user device is within theparticular coverage area; where the method further includes assessinghistorical data for the user device; generating a call profile for theuser device based at least in part on the historical data, wherein thecall profile indicates a probability that calls satisfying one or morecriteria are completed using a particular network; and routing the callto the second network based at least in part on the call profile; wherethe one or more criteria comprises one or more of a location of the userdevice, a location of a user being called by the user device, a time ofday, a particular user being called by the user device, a destinationnetwork used by a device of the particular user, or a destinationnetwork provider of the destination network; and where determining thefirst measurement and the second measurement of the networkcharacteristic comprises: transmitting a request to the user device forthe network characteristic; and receiving the first measurement of thenetwork characteristic with respect to the first network and the secondmeasurement of the network characteristic with respect to the secondnetwork from the user device.

Other Implementation Details

A number of embodiments have been described herein. It should beunderstood that where described embodiments are not mutually exclusive,each of the embodiments described herein can be combined with one ormore of the other embodiments described herein. Any structure, material,function, method, or step illustrated or described in connection withany embodiment in the specification can be used instead of or incombination with any other structure, material, function, method, orstep illustrated or described in connection with any other embodiment inthe specification. Furthermore, no features, steps, structures, ormethods disclosed in the specification are essential or indispensable.

Depending on the embodiment, certain acts, events, or functions of anyof the algorithms described herein can be performed in a differentsequence, can be added, merged, or left out altogether (e.g., not alldescribed acts or events are necessary for the practice of thealgorithms). Moreover, in certain embodiments, acts or events can beperformed concurrently, e.g., through multi-threaded processing,interrupt processing, or multiple processors or processor cores or onother parallel architectures, rather than sequentially. In addition,different tasks or processes can be performed by different machinesand/or computing systems that can function together.

The various illustrative logical blocks, modules, and algorithm stepsdescribed in connection with the embodiments disclosed herein can beimplemented as application-specific electronic hardware, computersoftware executed by computer hardware, or a combination of both. Toclearly illustrate this interchangeability of hardware and software,various illustrative components, blocks, modules, and steps have beendescribed above generally in terms of their functionality. Whether suchfunctionality is implemented as hardware or software depends upon theparticular application and design constraints imposed on the overallsystem. For example, the dynamic routing system 108 can be implementedby one or more computer systems or by a computer system including one ormore processors. Moreover, the described functionality can beimplemented in varying ways for each particular application of thesystems described herein, but such implementation decisions should notbe interpreted as causing a departure from the scope of the disclosure.

The various illustrative logical blocks and modules described inconnection with the embodiments disclosed herein can be implemented orperformed by a machine, such as a general purpose processor, a digitalsignal processor (DSP), an application specific integrated circuit(ASIC), a field programmable gate array (FPGA) or other programmablelogic device, discrete gate or transistor logic, discrete hardwarecomponents, or any combination thereof designed to perform the functionsdescribed herein. A general purpose processor can be a microprocessor,but in the alternative, the processor can be a controller,microcontroller, or state machine, combinations of the same, or thelike. A processor can also be implemented as a combination of computingdevices, e.g., a combination of a DSP and a microprocessor, a pluralityof microprocessors, one or more microprocessors in conjunction with aDSP core, or any other such configuration. A computing environment caninclude any type of computer system, including, but not limited to, acomputer system based on a microprocessor, a mainframe computer, adigital signal processor, a portable computing device, a personalorganizer, a device controller, and a computational engine within anappliance, to name a few.

The steps of a method, process, or algorithm described in connectionwith the embodiments disclosed herein can be embodied directly inhardware, in a software module executed by a processor, or in acombination of the two. A software module can reside in RAM memory,flash memory, ROM memory, EPROM memory, EEPROM memory, registers, harddisk, a removable disk, a CD-ROM, or any other form of computer-readablestorage medium known in the art. An exemplary storage medium can becoupled to the processor such that the processor can read informationfrom, and write information to, the storage medium. In the alternative,the storage medium can be integral to the processor. The processor andthe storage medium can reside in an ASIC. The ASIC can reside in a userterminal. In the alternative, the processor and the storage medium canreside as discrete components in a user terminal.

Conditional language used herein, such as, among others, “can,” “might,”“may,” “e.g.,” and the like, unless specifically stated otherwise, orotherwise understood within the context as used, is generally intendedto convey that certain embodiments include, while other embodiments donot include, certain features, elements and/or states. Thus, suchconditional language is not generally intended to imply that features,elements and/or states are in any way required for one or moreembodiments or that one or more embodiments necessarily include logicfor deciding, with or without author input or prompting, whether thesefeatures, elements and/or states are included or are to be performed inany particular embodiment.

While the above detailed description has shown, described, and pointedout novel features as applied to various embodiments, it will beunderstood that various omissions, substitutions, and changes in theform and details of the devices or algorithms illustrated can be madewithout departing from the spirit of the disclosure. As will berecognized, certain embodiments of the inventions described herein canbe embodied within a form that does not provide all of the features andbenefits set forth herein, as some features can be used or practicedseparately from others. The scope of certain inventions disclosed hereinis indicated by the appended claims rather than by the foregoingdescription. All changes which come within the meaning and range ofequivalency of the claims are to be embraced within their scope.

What is claimed is:
 1. A wireless device configured to simultaneouslymaintain communication channels over a plurality of data networks, thewireless device comprising: a first radio frequency subsystem comprisinga first front-end module configured to process signals of a firstreceive band associated with a first data network and signals of asecond receive band of a second data network; a second radio frequencysubsystem comprising a second front-end module configured to process thesignals of the first receive band associated with the first data networkand the signals of the second receive band associated with the seconddata network; a hardware processor in communication with the first radiofrequency subsystem and the second radio frequency subsystem, whereinthe hardware processor is configured to control whether the first radiofrequency subsystem communicates with the first data network associatedwith a first subscriber identity module of the wireless device orcommunicates with the second data network associated with a secondsubscriber identity module of the wireless device during a particulartime period; a first modem connected to a first port of the hardwareprocessor, the first modem configured to transmit packets using thefirst radio frequency subsystem via a first antenna to one of the firstdata network or the second data network; a second modem configured totransmit packets using the second radio frequency subsystem via a secondantenna to one of the first data network or the second data network; anda communication hub connected to a second port of the hardwareprocessor, the communication hub configured to connect the second modemto the hardware processor.
 2. The wireless device of claim 1, whereinthe second modem is integrated with the second radio frequencysubsystem.
 3. The wireless device of claim 2, wherein the first modem isseparate from and in communication with the first radio frequencysubsystem.
 4. The wireless device of claim 1, wherein the communicationhub is inserted between an external port of the wireless device and aport of the hardware processor that connects to the external port of thewireless device.
 5. The wireless device of claim 4, wherein the externalport comprises one or more of a charge port or a data transfer port. 6.The wireless device of claim 4, wherein the external port comprises auniversal serial bus port.
 7. The wireless device of claim 1, whereinthe second modem comprises an embedded processor that communicates withthe hardware processor.
 8. The wireless device of claim 7, wherein theembedded processor is a control host for the second modem, and whereinthe embedded processor is at least partially controlled by the hardwareprocessor.
 9. The wireless device of claim 1, further comprising a tunerconfigured to determine whether a receive signal is of the first receiveband or the second receive band.
 10. The wireless device of claim 1,wherein the hardware processor selects one of the first data network orthe second data network to transmit a packet based on a comparison of asignal strength of the first data network and a signal strength of thesecond data network.
 11. The wireless device of claim 1, wherein thefirst antenna comprises a primary antenna configured to transmit andreceive signals of the first receive band and signals of the secondreceive band.
 12. The wireless device of claim 1, further comprising adiversity antenna configured to receive signals of the first receiveband or the second receive band.
 13. The wireless device of claim 12,wherein the hardware processor is further configured to determine asignal strength of a connection to one of the first data network or thesecond data network based on a receive signal received by the diversityantenna.
 14. The wireless device of claim 12, wherein the hardwareprocessor is further configured to process data packets received at thediversity antenna from the first data network and to transmit datapackets over the first data network via the first antenna.
 15. Thewireless device of claim 1, wherein the first subscriber identity moduleis in communication with the hardware processor and the secondsubscriber identity module is in communication with the second radiofrequency subsystem.
 16. The wireless device of claim 1, furthercomprising a third subscriber identity module associated with a thirddata network.
 17. The wireless device of claim 16, wherein the firstsubscriber identity module and the third subscriber identity module arein communication with the hardware processor and the second subscriberidentity module is in communication with the second radio frequencysubsystem.
 18. The wireless device of claim 1, wherein the first antennacomprises a first primary antenna in communication with the first radiofrequency subsystem and the second antenna comprises a second primaryantenna in communication with the second radio frequency subsystem. 19.The wireless device of claim 18, further comprising a first diversityantenna in communication with the first radio frequency subsystem and asecond diversity antenna in communication with the second radiofrequency subsystem, wherein the hardware processor is furtherconfigured to determine a signal strength of a connection to one of thefirst data network or the second data network based on a first receivesignal received by the first diversity antenna or a second receivesignal received by the second diversity antenna.
 20. The wireless deviceof claim 1, wherein the first data network is implemented using a firstcommunication technology and is associated with a first serviceprovider, and the second data network is implemented using a secondcommunication technology and is associated with a second serviceprovider.
 21. The wireless device of claim 1, wherein the hardwareprocessor is further configured to cause a first signal strength of afirst connection to the first data network and a second signal strengthof a second connection to the second data network to be transmitted to adynamic routing system, wherein the dynamic routing system is configuredto compare the first signal strength and the second signal strength. 22.The wireless device of claim 1, wherein the hardware processor receivesa selection of one of the first data network or the second data networkfrom a dynamic routing system.
 23. The wireless device of claim 22,wherein the dynamic routing system is configured to select one of thefirst data network or the second data network based at least in part ona first signal strength of a first connection to the first data networkand a second signal strength of a second connection to the second datanetwork.
 24. The wireless device of claim 23, wherein the first signalstrength and the second signal strength is determined by one or more ofthe hardware processor or the dynamic routing system.